package cn.iocoder.yudao.module.bpm.convert.oa;

import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOaLeaveCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOaLeaveRespVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOaLeaveDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 请假申请 Convert
 *
 * @author 芋艿
 */
@Mapper
public interface BpmOaLeaveConvert {

    BpmOaLeaveConvert INSTANCE = Mappers.getMapper(BpmOaLeaveConvert.class);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code BpmOaLeaveDO}
     */
    BpmOaLeaveDO convert(BpmOaLeaveCreateReqVO bean);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code BpmOaLeaveRespVO}
     */
    BpmOaLeaveRespVO convert(BpmOaLeaveDO bean);

    /**
     * 转换列表
     *
     * @param list 列表
     * @return {@code List<BpmOaLeaveRespVO>}
     */
    List<BpmOaLeaveRespVO> convertList(List<BpmOaLeaveDO> list);

    /**
     * 转换分页
     *
     * @param page 分页
     * @return {@code PageResult<BpmOaLeaveRespVO>}
     */
    PageResult<BpmOaLeaveRespVO> convertPage(PageResult<BpmOaLeaveDO> page);

}
